﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FTools.Interface;
using FTools.Comunicacion;
using System.Collections;
using FTools.Dominio;
using FTools.Generico;

namespace FTools.Presentacion
{
    public partial class FrmLugar : Form
    {
        InterfacePais interfacePais = new ComPais();
        InterfaceDepartamento interfaceDepartamento = new ComDepartamento();
        InterfaceCiudad interfaceCiudad = new ComCiudad();

        public FrmLugar()
        {
            InitializeComponent();
        }

        private void FrmLugar_Load(object sender, EventArgs e)
        {
            this.cargarLvwPais();
        }

#region Metodos Form

        //LVW PAIS
        public void cargarLvwPais()
        {
            lvwPais.Items.Clear();
            ListViewItem x;
            ArrayList colPais = interfacePais.obtenerColeccionPais();
            foreach (Pais objPais in colPais)
            {
                x = lvwPais.Items.Add(Convert.ToString(objPais.Nombre));
                x.Tag = objPais;
            }
        }
        private void lvwPais_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lvwPais.SelectedItems.Count > 0)
            {
                btnGrabarPais.Visible = false;
                btnModificarPais.Visible = true;
                foreach (ListViewItem x in lvwPais.SelectedItems)
                {
                    Pais objPais = (Pais)x.Tag;
                    txtNombrePais.Text = objPais.Nombre;
                    this.cargarLvwDepartamento(objPais.IdPais);
                    this.lvwCiudad.Items.Clear();
                }
            }
            else
            {
                btnGrabarPais.Visible = true;
                btnModificarPais.Visible = false;
                txtNombrePais.Clear();
            }
        }

        //LVW DEPARTAMENTOS
        public void cargarLvwDepartamento(long xIdPais)
        {
            lvwDepartamento.Items.Clear();
            ListViewItem x;
            ArrayList colDepartamento = interfaceDepartamento.obtenerColeccionDepartamento(xIdPais);
            foreach (Departamento objDepartamento in colDepartamento)
            {
                x = lvwDepartamento.Items.Add(Convert.ToString(objDepartamento.Nombre));
                x.Tag = objDepartamento;
            }
        }
        private void lvwDepartamento_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lvwDepartamento.SelectedItems.Count > 0)
            {
                btnGrabarDepartamento.Visible = false;
                btnModificarDepartamento.Visible = true;
                foreach (ListViewItem x in lvwDepartamento.SelectedItems)
                {
                    Departamento objDepartamento = (Departamento)x.Tag;
                    txtNombreDepartamento.Text = objDepartamento.Nombre;
                    this.cargarLvwCiudad(objDepartamento.IdDepartamento);
                }
            }
            else
            {
                btnGrabarDepartamento.Visible = true;
                btnModificarDepartamento.Visible = false;
                txtNombreDepartamento.Clear();
            }
        }

        //LVW CIUDADES
        public void cargarLvwCiudad(long xIdDepartamento)
        {
            lvwCiudad.Items.Clear();
            ListViewItem x;
            ArrayList colCiudad = interfaceCiudad.obtenerColeccionCiudad(xIdDepartamento);
            foreach (Ciudad objCiudad in colCiudad)
            {
                x = lvwCiudad.Items.Add(Convert.ToString(objCiudad.Nombre));
                x.Tag = objCiudad;
            }
        }
        private void lvwCiudad_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lvwCiudad.SelectedItems.Count > 0)
            {
                btnGrabarCiudad.Visible = false;
                btnModificarCiudad.Visible = true;
                foreach (ListViewItem x in lvwCiudad.SelectedItems)
                {
                    Ciudad objCiudad = (Ciudad)x.Tag;
                    txtNombreCiudad.Text = objCiudad.Nombre;
                }
            }
            else
            {
                btnGrabarCiudad.Visible = true;
                btnModificarCiudad.Visible = false;
                txtNombreCiudad.Clear();
            }
        }

#endregion

        

#region Botones

        //PAIS
        private void btnGrabarPais_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtNombrePais.Text != "")
                {
                    if (!interfacePais.existePais(txtNombrePais.Text))
                    {
                        Pais objPais = new Pais();
                        objPais.Nombre = txtNombrePais.Text;
                        interfacePais.altaPais(objPais);
                        this.cargarLvwPais();
                    }
                    else
                        MessageBox.Show("El Pais ya existe");
                }
                else
                    MessageBox.Show("Debe ingresar Nombre");
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        private void btnModificarPais_Click(object sender, EventArgs e)
        {
            try
            {
                if (lvwPais.SelectedItems.Count > 0)
                {
                    foreach (ListViewItem x in lvwPais.SelectedItems)
                    {
                        Pais objPais = (Pais)x.Tag;
                        if (interfacePais.existePais(objPais.IdPais))
                        {
                            if (txtNombrePais.Text != "")
                            {
                                objPais.Nombre = txtNombrePais.Text;
                                interfacePais.modificaPais(objPais);
                                this.cargarLvwPais();
                            }
                            else
                                MessageBox.Show("Debe ingresar Nombre");
                        }
                        else
                            MessageBox.Show("El Pais no existe");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        private void btnBorrarPais_Click(object sender, EventArgs e)
        {
            try
            {
                if (lvwPais.SelectedItems.Count > 0)
                {
                    foreach (ListViewItem x in lvwPais.SelectedItems)
                    {
                        Pais objPais = (Pais)x.Tag;
                        if (interfacePais.existePais(objPais.IdPais))
                        {
                            interfacePais.bajaPais(objPais);
                            this.cargarLvwPais();
                        }
                        else
                            MessageBox.Show("El Pais no existe");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        
        //DEPARTAMENTO
        private void btnGrabarDepartamento_Click(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        private void btnModificarDepartamento_Click(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        private void btnBorrarDepartamento_Click(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }

        //CIUDAD
        private void btnGrabarCiudad_Click(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        private void btnModificarCiudad_Click(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        private void btnBorrarCiudad_Click(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception ex)
            {
                MessageBox.Show("#Presentacion# " + ex.Message);
            }
        }
        

        


#endregion

        

        

        

        

        

        


    }

}
